﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Brainee.Immutable
{
  // From Eric Lippert:
  // http://blogs.msdn.com/ericlippert/archive/2007/12/10/immutability-in-c-part-four-an-immutable-queue.aspx
  public interface IQueue<T> : IEnumerable<T>
  {
    bool IsEmpty { get; }
    T Peek ();
    IQueue<T> Enqueue (T value);
    IQueue<T> Dequeue ();
  }
}
